package eteam.aps.mapper;

import eteam.aps.model.dto.SaleQueryDto;
import eteam.aps.model.export.model.*;
import eteam.aps.model.export.query.*;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * @author Ll
 * @since 2024/1/17
 */
@Mapper
public interface ExportMapper {

    /**
     * 到货单导出
     *
     * @param map 查询条件
     * @return 到货单结果集
     */
    List<ArrivalVouchExport> arrivalVouchExport(Map<String, Object> map);


    /**
     * 制令号产品生产报表
     *
     * @return 制令号产品生产报表
     */
    List<ProductSerialExport> productSerialExport(ProductSerialQuery productSerialQuery);


    /**
     * 任务令产品编码工序状态
     *
     * @param processingQuery 查询条件
     * @return 任务令产品编码工序状态结果集
     */
    List<ProductWorkProcessingExport> productWorkProcessingExport(ProductWorkProcessingQuery processingQuery);

    /**
     * 任务令产品材料序列清单
     *
     * @param productInvQuery 查询条件
     * @return 任务令产品编码工序状态结果集
     */
    List<ProductInvExport> productInvExport(ProductInvQuery productInvQuery);

    /**
     * 销售单报表
     *
     * @param query 查询条件
     * @return 结果集
     */
    List<SaleOrderExport> saleOrderExport(SaleQueryDto query);

    /**
     * 发货数据
     *
     * @param query 订单编号
     * @return 结果集
     */
    List<OutboundOrdersExport> outboundOrdersExport(OutboundOrdersQuery query);

    /**
     * 发货数据
     *
     * @param query 订单编号
     * @return 结果集
     */
    List<ShipmentDataExport> shipmentDataExport(ShipmentDataQuery query);

    /**
     * 质检数据报表
     *
     * @param query 查询条件
     */
    List<QualityExport> qualityExport(QualityQuery query);

    /**
     * 现存量清单
     *
     * @param query 查询条件
     * @return 结果集
     */
    InvoicesHead deliveryNoticeHead(InvoicesQuery query);

    /**
     * 送货单清单
     *
     * @param query 订单编号
     * @return 送货单清单结果集
     */
    List<InvoicesBody> deliveryNoticeBody(InvoicesQuery query);
}
